Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2024, 17:44
Аватар для dandiablo
Интересующийся
Отправить личное сообщение для dandiablo Посмотреть профиль Найти все сообщения от dandiablo
 
Регистрация: 27.11.2022
Сообщений: 12

Привязать yandex капчу к отправке формы
Доброго времени суток!

Я - тупой, к сожалению, ....

Вот ajax запрос с проверкой на JQuery validate;

$('#myForm').validate({

		rules:{

			name_user_forms:{

				required: true,

				minlength:4

			},

			tel_user_forms:{

				required: true

			},

			user_email_forms:{
				
				required:true,

				email: true
			},

			user_tema_forms:{

				required:true,

				minlength:8

			},

			user_text_forms:{

				required:true,

				minlength:10

			},

			user_yes_forms:{

				required:true

			}
		},

		submitHandler: function(form) {
			$.ajax({
			url: 'formsMail.php',
			type: 'POST',
			dataType: 'html',
			data: $(form).serialize(),
		})
		.done(function() {
			
			$('#result_form').text('Сообщение отправлено!');

			$("#myForm").trigger("reset");

		})

		.fail(function() {
			
			$('#result_form').text('Ошибка, что то сломалось!');

			$("#myForm").trigger("reset");

		});

        	return false;
    	}

	});

	$.validator.addMethod(
  		"regex",
  		function(value, element, regexp) {
    	var re = new RegExp(regexp);
    	return this.optional(element) || re.test(value);
  }

);

	$("#myFormName").rules("add", { regex: "^[а-яА-ЯЁё ]+$" });

	$("#myFormTema").rules("add", { regex: "^[а-яА-ЯЁё ]+$" });

	$("#myFormMessage").rules("add", { regex: "^[а-яА-ЯЁё ]+$" });


И он работает, я проверял.


И вот код для проверки ответа пользователя на капчу из оф. документации, отправка GET запроса:

const https = require('https'),
    querystring = require('querystring');

const SMARTCAPTCHA_SERVER_KEY = "<ключ_сервера>";


function check_captcha(token, callback) {
    const options = {
        hostname: 'smartcaptcha.yandexcloud.net',
        port: 443,
        path: '/validate?' + querystring.stringify({
            secret: SMARTCAPTCHA_SERVER_KEY,
            token: token,
            ip: '<IP-адрес_пользователя>', // Способ получения IP-адреса пользователя зависит от вашего фреймворка и прокси.
        }),
        method: 'GET',
    };
    const req = https.request(options, (res) => {
        res.on('data', (content) => {
            if (res.statusCode !== 200) {
                console.error(`Allow access due to an error: code=${res.statusCode}; message=${content}`);
                callback(true);
                return;
            }
            callback(JSON.parse(content).status === 'ok');
        });
    });
    req.on('error', (error) => {
        console.error(error);
        callback(true);
    });
    req.end();
}


let token = "<токен>";
check_captcha(token, (passed) => {
    if (passed) {
        console.log("Passed");
    } else {
        console.log("Robot");
    }
});


И эти два кода работают отдельно друг от друга...

А как сделать, что бы отправка почты происходила после проверки капчи?

У кого есть опыт, расскажите дураку, пожалуйста!

Благодарю!
Ответить с цитированием
  #2 (permalink)  
Старый 31.07.2024, 07:47
Аватар для dandiablo
Интересующийся
Отправить личное сообщение для dandiablo Посмотреть профиль Найти все сообщения от dandiablo
 
Регистрация: 27.11.2022
Сообщений: 12

Блин, ни кто не пользовался? Жаль...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сбросить данные формы только при ее отправке? sadovod Общие вопросы Javascript 1 11.04.2020 10:21
Как при отправке формы из модалки дописывать данные из первой формы? Alexander9292 AJAX и COMET 5 01.09.2019 20:01
Как отменить событие onchange при отправке формы? Petja Элементы интерфейса 1 10.04.2014 18:10
При отправке формы Аяксом возникает ошибка Veterinar jQuery 0 19.01.2014 14:39
Не понятна работа при отправке формы на валидацию bartonom AJAX и COMET 5 14.05.2013 21:18